package leetCode;

import java.util.Arrays;

/**
 * 1187. 使数组严格递增
 * 给你两个整数数组 arr1 和 arr2，返回使 arr1 严格递增所需要的最小「操作」数（可能为 0）。
 * <p>
 * 每一步「操作」中，你可以分别从 arr1 和 arr2 中各选出一个索引，分别为 i 和 j，0 <= i < arr1.length 和 0 <= j < arr2.length，然后进行赋值运算 arr1[i] = arr2[j]。
 * <p>
 * 如果无法让 arr1 严格递增，请返回 -1。
 *
 * @author 司松坡
 * @createTime 2023年04月21日
 */
public class LeetCode1187fail {
    public int makeArrayIncreasing(int[] arr1, int[] arr2) {
        Arrays.sort(arr2);
        int j = 0;
        int res = 0;
        for (int i = 0; i < arr1.length - 1; i++) {
            if (arr1[i] >= arr1[i + 1]) {
                for (; j < arr2.length; j++) {
                    if (i == 0) {
                        if (arr2[j] < arr1[i + 1]) {
                            j++;
                            res++;
                            break;
                        } else {
                            return -1;
                        }
                    } else {
                        if (arr1[i- 1] < arr2[2] && arr2[j] < arr1[i + 1]) {
                            j++;
                            res++;
                            break;
                        } else {
                            if (arr2[j] >= arr1[i + 1]){
                                return -1;
                            }
                        }
                    }
                }
            }
        }
        return res;


    }

}
